<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.prime.com.tr/ui">
      
    <ui:composition template="/new-template/template-crud.xhtml">
    	
    	<ui:define name="tituloPagina">
    		<h:outputText value="Grupo de Usuários :: Controle de Acesso :: SEDUC" />
    	</ui:define>
    	
    	<ui:define name="parametros">
    	   <ui:param name="bean" value="#{grupoDeUsuariosBean}" />
    	</ui:define>
    	
    	<ui:define name="tituloFieldSetFiltro">
		   <h:outputText value="&nbsp; Pesquisa por Grupo de Usuários &nbsp;" />
		</ui:define>
		
		<ui:define name="camposFiltro">
		   <h:panelGrid id="painelGroup" columns="2" columnClasses="colunaBusca">
				<h:outputLabel value="Nome: "/>
				<h:inputText value="#{grupoDeUsuariosBean.entitySearch.descricao}" size="50" maxlength="50" >
					<f:converter converterId="converterStringVazia"/>
				</h:inputText>	
		  	</h:panelGrid>	 
		</ui:define>
		
		<ui:define name="botoesFiltro">
		
			<p:commandButton styleClass="btIcon"
							 value="Consultar"
							 image="searchIcon" 
							 onclick="carregando.show();"
							 actionListener="#{grupoDeUsuariosBean.findByNivel}" 
							 oncomplete="carregando.hide();"
							 update="painelGlobal" />
		</ui:define>
		
		<ui:define name="tituloPainel">
			<ui:param name="tituloPainel" value="Grupo de Usuários" />
		</ui:define>
		
		<ui:define name="resultFiltro">
		
			<p:dataTable align="center" 
   						 width="600px" 
   						 id="grupos"
   						 rows="10"
   						 pageLinks="3"
   						 paginator="#{grupoDeUsuariosBean.resultSearch.rowCount > 0}"
   						 paginatorAlwaysVisible="false"
   						 emptyMessage="Nenhum grupo de usuários foi encontrado."
   						 value="#{grupoDeUsuariosBean.resultSearch}" 
       					 var="grupo" 
       					 paginatorPosition="bottom">
       					
       				<p:column headerText="" style="width:60px; text-align:center;">
       					<div class="colunaAcao">					    			
							<h:commandButton style="border:none;" 
											 id="cmdUpd" 
											 image="#{resource['img:ico_edit.gif']}"
											 actionListener="#{grupoDeUsuariosBean.prepareUpdate}">
								 <p:ajax update="painelGlobal" />
							</h:commandButton>
						</div>
       				</p:column>
       						
       				<p:column headerText="ID" style="text-align:center;">
       					<h:outputText value="#{grupo.id}" />
       				</p:column>
       						
       				<p:column headerText="Nome" style="text-align:left;" >
       					<h:outputText value="#{grupo.descricao}" />
       				</p:column>
       				
       				<p:column headerText="Nível de Acesso" style="text-align:center;" >
       					<h:outputText value="#{grupo.nivelDeAcesso}" />
       				</p:column>
       				
       				<p:column headerText="Módulo" style="text-align:left;" >
       					<h:outputText value="#{grupo.modulo.descricao}" />
       				</p:column>
       						
       				<p:column style="width:60px; text-align:center;">
       					<f:facet name="header">
       						<h:selectBooleanCheckbox styleClass="ui-checkBoxMain" rendered="#{grupoDeUsuariosBean.resultSearch.rowCount > 0}" />
       					</f:facet>
       					<h:selectBooleanCheckbox styleClass="ui-checkBox" valueChangeListener="#{grupoDeUsuariosBean.select}" />
       				</p:column>
			</p:dataTable>
		</ui:define>
		
		<ui:define name="tituloFieldSetInsert">
		  <h:outputLabel value="&nbsp; Cadastro de Grupo de Usuários &nbsp;" />
		</ui:define>
		
		<ui:define name="camposInsert">
		
		<h:panelGrid id="painelGroup" columns="2" columnClasses="colunaBusca" width="700">
			
			<h:outputLabel value="Nome: *"/>
			<h:inputText required="true" 
						 label="Nome"
						 disabled="#{grupoDeUsuariosBean.entity.nivelMaster}"
						 value="#{grupoDeUsuariosBean.entity.descricao}" 
						 maxlength="50" 
						 size="50">						
			</h:inputText>
						
			<h:outputLabel value="Nível de Acesso: *"/>
			<h:selectOneMenu  style="width:auto" 
							  id="selectNivelDeAcesso"
						      required="true" 
						      label="Nível de Acesso"
						      disabled="#{grupoDeUsuariosBean.entity.nivelMaster}"
						      value="#{grupoDeUsuariosBean.entity.nivelDeAcesso}">
				<f:selectItem itemValue="#{null}" itemLabel="-- selecione --"/>	
				<f:selectItems value="#{grupoDeUsuariosBean.niveis}" />		
			</h:selectOneMenu>
			
			<h:outputLabel value="Transações Existentes:"/>
			<h:column>
				<p:dataTable align="center" 
   						 	 width="600px" 
   						 	 id="existentes"
   						 	 rows="10"
   						 	 pageLinks="3"
   						 	 emptyMessage=""
   						 	 value="#{grupoDeUsuariosBean.resultExistentes}" 
       					 	 var="classe" 
       					 	 paginator="#{grupoDeUsuariosBean.resultExistentes.rowCount > 0}"
       					 	 paginatorPosition="bottom">
       				
       				<p:column headerText="" style="width:60px; text-align:center;">
       					<h:commandButton style="border:none;" 
       									 id="cmdRemove"
										 image="#{resource['img:ico_cancel.gif']}" 
										 value="Remover Transação"
										 immediate="true"
										 rendered="#{!grupoDeUsuariosBean.entity.nivelMaster}">
						  <p:ajax process="@this" update="formCadastro:possiveis, formCadastro:existentes" actionListener="#{grupoDeUsuariosBean.selecionarExistente}" />
						</h:commandButton>		
       				</p:column>
       				
       				<p:column headerText="ID" style="text-align:center;">
       					<h:outputText value="#{classe.transacao.id}" />
       				</p:column>
       				
       				<p:column headerText="Nome" style="text-align:left;">
       					<h:outputText value="#{classe.transacao.descricao}"/>
       				</p:column>
       				
       				<p:column headerText="Inserir" style="text-align:center;">
						<h:selectBooleanCheckbox value="#{classe.ativoBool}" >
            				<p:ajax event="change" process="@this" update="formCadastro:existentes" />
            			</h:selectBooleanCheckbox>      					
       				</p:column>
       				
       				<p:column headerText="Alterar" style="text-align:center;">
						<h:selectBooleanCheckbox value="#{classe.editableBool}" >
            				<p:ajax event="change" process="@this" update="formCadastro:existentes" />
            			</h:selectBooleanCheckbox>      					
       				</p:column>
       				
       				<p:column headerText="Deletar" style="text-align:center;">
						<h:selectBooleanCheckbox value="#{classe.removeBool}" >
            				<p:ajax event="change" process="@this" update="formCadastro:existentes" />
            			</h:selectBooleanCheckbox>      					
       				</p:column>
       			</p:dataTable>
       		</h:column>
       		
			<h:outputLabel value="Transações Possíveis:"/>
			  <h:column id="colunaTeste">
			        <p:spacer height="10" />
			  		<p:dataTable align="center" 
		   						 width="600px" 
		   						 id="possiveis"
		   						 rows="15"
		   						 pageLinks="3"
		   						 emptyMessage=""
		   						 value="#{grupoDeUsuariosBean.resultPossiveis}" 
		       					 var="classe" 
		       					 paginator="#{grupoDeUsuariosBean.resultPossiveis.rowCount > 0}"
		       					 paginatorPosition="bottom">
       					 
       					 <p:column headerText="" style="width:60px; text-align:center;">
       					 	 <h:commandButton style="border:none;" 
       					 	 				  id="cmdRemove"
       					 	 				  immediate="true"
       					 	 				  image="#{resource['img:add_16x16.png']}"
											  rendered="#{!grupoDeUsuariosBean.entity.nivelMaster}">
								    <p:ajax process="@this" update="formCadastro:possiveis, formCadastro:existentes" actionListener="#{grupoDeUsuariosBean.selecionarPossivel}" />
							 </h:commandButton>
       					 </p:column>
       					 
       					 <p:column headerText="ID" style="text-align:center;">
       					    <h:outputText value="#{classe.id}" />	
       					 </p:column>
       					 
       					 <p:column headerText="Nome" style="text-align:left;">
       					    <h:outputText value="#{classe.descricao}" />	
       					 </p:column>
       				</p:dataTable>
  			   </h:column>
  		   </h:panelGrid>
		</ui:define>
		
		<ui:define name="botoesInsert">
		
			 <p:commandButton styleClass="btIcon" 
							  value="Salvar"
							  image="saveIcon" 
							  actionListener="#{grupoDeUsuariosBean.save}" 
							  rendered="#{grupoDeUsuariosBean.inserting and loginBean.acessos.grupoUsuarios.insert and !grupoDeUsuariosBean.entity.nivelMaster}" 
							  oncomplete="mensagemAviso.show();"
							  update="painelGlobal" />
						
			 <p:commandButton styleClass="btIcon" 
						 	  value="Atualizar"
							  image="updateIcon" 
							  actionListener="#{grupoDeUsuariosBean.update}"
							  oncomplete="mensagemAviso.show();" 
							  rendered="#{grupoDeUsuariosBean.editing and loginBean.acessos.grupoUsuarios.update and !grupoDeUsuariosBean.entity.nivelMaster}" 
							  update="painelGlobal" />
						
			 <p:commandButton styleClass="btIcon" 
							  value="Voltar"
							  image="backIcon" 
							  actionListener="#{grupoDeUsuariosBean.cancel}" 
							  immediate="true" 
							  update="painelGlobal" />
		</ui:define>
		
    </ui:composition>
</html>